#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
#include <algorithm>
#include <utility>

using namespace std;

const int N = 2e5 + 10;

typedef pair<int, int> PII;

PII arr[N];

int n, k;

class cmp
{
    void operator()()
    {

    }
};

int main()
{
    cin >> n >> k;
    for (int i = 0; i < n; i++) cin >> arr[i].first;
    for (int i = 0; i < n; i++) cin >> arr[i].second;

    sort(arr, arr + n, [&](const PII& a, const PII& b)
        {
            if (a.second != b.second) return a.second > b.second;
            else return a.first < b.first;
        }
    );

    long long s = 0, t = 0;
    for (int i = 0; i < k; i++)
    {
        s += arr[i].first;
        t += arr[i].second;
    }

    cout << s << " " << t << endl;

    return 0;
}
//#include <iostream>
//#include <string>
//
//using namespace std;
//
//class Solution {
//public:
//
//    string compressString(string param) {
//        string ret;
//        int left = 0, right = 0, n = param.size();
//        while (left < n)
//        {
//            int count = 0;
//            while (param[left] == param[right])
//            {
//                right++;
//                count++;
//            }
//            ret += param[left];
//            if (count != 1) ret += to_string(count);
//            left = right;
//            right = left;
//        }
//        return ret;
//    }
//};
//
//int main()
//{
//    Solution s;
//    cout << s.compressString("aabcccccaaa");
//    return 0;
//}